//using SubhadraSolutions.Sharp.Utils.Validation;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;

//namespace SubhadraSolutions.Sharp.Utils.Validation.Validators
//{
//    public class NumericValidator : IValidator
//    {
//        public double CompareWith
//        {
//            get;
//            set;
//        }

//        public ComparisonTypes ComparisonType
//        {
//            get;
//            set;
//        }

//        public ValidationResult Validate(object obj, string objectName)
//        {
//            double input = double.Parse(obj.ToString());
//            //IComparable input = (IComparable)value;
//            int compareResult = input.CompareTo(CompareWith);
//            bool isValid = true;
//            switch (ComparisonType)
//            {
//                case ComparisonTypes.Equals:
//                    {
//                        isValid = compareResult == 0;
//                        break;
//                    }
//                case ComparisonTypes.GreaterThan:
//                    {
//                        isValid = compareResult > 0;
//                        break;
//                    }
//                case ComparisonTypes.LessThan:
//                    {
//                        isValid = compareResult < 0;
//                        break;
//                    }
//                case ComparisonTypes.GreaterThanOrEquals:
//                    {
//                        isValid = compareResult >= 0;
//                        break;
//                    }
//                case ComparisonTypes.LessThanOrEquals:
//                    {
//                        isValid = compareResult >= 0;
//                        break;
//                    }
//            }
//            if (!isValid)
//            {
//                return new ValidationResult
//                {
//                    Status = ValidationStatus.Failure,
//                    ErrorMessage = string.Format("{0} is not {1} the value: {2}", objectName, ComparisonType.ToString(), CompareWith),
//                    PropertyName = objectName
//                };
//            }
//            return new ValidationResult
//                {
//                    Status = ValidationStatus.Success
//                };
//        }
//    }
//}